<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<!--
    toRef: 
        对于有些参数可能不会传入，如果不做处理就会导致报错，使用 toRef 就可以避免
-->

<body>
    <div id="app"></div>
    <div id="modal"></div>
</body>
<script src="js/vue.js"></script>
<script>

    const app = Vue.createApp({
        setup(props, context) {
            const {reactive, toRefs, toRef} = Vue;

            let obj = reactive({"name": "Tim", "sex": "男"});

            let {name, sex} = toRefs(obj);
            let age = toRef(obj, 'age');  // 使用 toRef, 这里的属性 age 是一个字符串，表示 obj 中的 key

            setTimeout(() => {
                name.value = "toRefs 属性";
                sex.value = "女";

                // 下面的两种赋值方法都可以
                obj.age = 100;
                age.value = 100;


            }, 2000);


            return {
                msg: '组合式API - toRef',
                name,
                sex,
                age
            }
        },

        template: `
          <div class="box">
          <h3> {{ msg }} </h3>
          <div> 姓名：{{ name }}, 性别: {{ sex }}, 年龄： {{ age }}</div>
          </div>
        `,
    }).mount("#app");

</script>

</html>
